home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)abi.d64 / supermon+ inst (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  7KB  |  222 lines

  1. 10 REM SUPERMON+ INSTR
  2. 20 GOSUB 10000
  3. 30 PRINT "SUPERMON+ IS A NEW VERSION OF
  4. 40 [153]"'SUPERMON'  THE REASON FOR THE NEW
  5. 50 PRINT"VERSION IS TO PROVIDE IDENTICAL
  6. 55 [153]"COMMANDS TO THOSE OF THE BUILT-IN
  7. 60 PRINT"MONITOR OF THE COMMODORE 128.
  8. 65 [153]"  THE MOST VISIBLE CHANGES FROM
  9. 70 PRINT"EARLIER VERSIONS OF SUPERMON ARE:
  10. 75 [153]"  --DECIMAL OR BINARY INPUT ALLOWED;
  11. 80 PRINT"  --DISK STATUS AND COMMANDS (@);
  12. 85 [153]"  --LOOSER (EASIER) SYNTAX.
  13. 100 GOSUB 9000
  14. 110 PRINT" NUMBER CONVERSION "
  15. 120 PRINT"   $2000
  16. 130 [153]" $2000
  17. 140 PRINT" +8192
  18. 150 [153]" &20000
  19. 160 PRINT" %10000000000000
  20. 170 [153]
  21. 180 [153]"     IN THE ABOVE EXAMPLE THE USER
  22. 190 PRINT"HAS ASKED FOR THE NUMERIC EQUIVALENTS
  23. 200 [153]"TO HEXADECIMAL 2000.  THE REPLY SHOWS
  24. 210 PRINT"THE VALUE IN HEX ($), IN DECIMAL (+),
  25. 220 [153]"IN OCTAL (&), AND IN BINARY (%).
  26. 230 PRINT"  THE USER COULD ASK FOR A NUMBER TO
  27. 240 [153]"BE CONVERTED FROM ANY OF THESE BASES
  28. 250 PRINT"BY GIVING THE APPROPRIATE PREFIX.
  29. 300 [141]9000
  30. 310 [153]" IMPORTANT NOTE -- "
  31. 320 [153]" AT ANY TIME IN THE FOLLOWING TEXT,
  32. 330 PRINT"YOU MAY ENTER ANY NUMBER IN ANY BASE
  33. 340 [153]"AND CONVERSION WILL BE DONE FOR YOU.
  34. 350 PRINT"EXAMPLE:
  35. 360 [153]"   M +4096
  36. 370 PRINT" ...  WILL CAUSE A MEMORY DISPLAY
  37. 380 [153]"FROM DECIMAL ADDRESS 4096.  IN THE
  38. 390 PRINT"DISPLAY, THE HEX ADDRESS ($1000) WILL
  39. 400 [153]"BE SHOWN.  SIMILARLY,
  40. 410 PRINT"   A +2048 LDA[160]#%10000000
  41. 420 [153]" ... WILL BE CONVERTED TO ASSEMBLE:
  42. 430 PRINT"   A $0400 LDA #$80
  43. 440 [153]"   IF YOU DON'T GIVE A PREFIX, THE
  44. 450 PRINT"MONITOR WILL ASSUME HEXADECIMAL.
  45. 500 [141]9000
  46. 510 [153]" REGISTER DISPLAY "
  47. 520 [153]"   R
  48. 530 PRINT"   PC  SR AC XR YR SP
  49. 540 [153]"; 0000 01 02 03 04 05
  50. 550 PRINT"     DISPLAYS THE REGISTER VALUES SAVED
  51. 560 [153]"WHEN SUPERMON+WAIT WAS ENTERED.  VALUES
  52. 570 PRINT"MAY BE CHANGED BY TYPING OVER THE
  53. 580 [153]"DISPLAY FOLLOWED BY A RETURN CHARACTER.
  54. 590 PRINT"  PC - PROGRAM COUNTER
  55. 600 [153]"  SR - STATUS REGISTER
  56. 610 PRINT"  AC, XR, YR - A, X, AND  Y REGISTERS
  57. 620 [153]"  SP - STACK POINTER
  58. 700 GOSUB9000
  59. 720 PRINT"   M[146] 200[146] 209
  60. 730 [153]">0200 4D 20 32 30 30 20 32 30:M 200 20"
  61. 740 [153]">0208 39 00 00 04 00 04 00 04:9......."
  62. 750 [153]"     DISPLAY MEMORY FROM 0200 HEX TO
  63. 760 PRINT"0209 HEX.  DISPLAY IS IN LINES OF 8
  64. 770 [153]"SO ADDRESSES $200 TO $20F ARE SHOWN.
  65. 780 PRINT"  IF ONE ADDRESS ONLY IS GIVEN THEN
  66. 790 [153]"12 LINES (96 LOCATIONS) WILL BE:SHOWN.
  67. 800 PRINT"IF NO ADDRESS IS GIVEN DISPLAY WILL GO
  68. 810 [153]"FROM THE LAST ADDRESS.
  69. 820 PRINT" EQUIVALENT ASCII CHARACTERS ARE SHOWN
  70. 830 [153]"IN REVERSE AT THE RIGHT.
  71. 840 PRINT"VALUES ARE CHANGED BY TYPING OVER THE
  72. 850 [153]"DISPLAY FOLLOWED BY A RETURN CHARACTER.
  73. 900 GOSUB9000
  74. 910 PRINT" EXIT TO BASIC "
  75. 920 PRINT"   X
  76. 930 [153]"     RETURN TO BASIC READYWAIT MODE.
  77. 940 PRINT"WHEN YOU WISH TO RETURN TO SUPERMON+,
  78. 950 [153]"COMMAND SYS 8WAIT.
  79. 1000 GOSUB9000
  80. 1010 PRINT" SIMPLE ASSEMBLER "
  81. 1020 PRINT"   A[146] 2000[146] LDA[146] #+18
  82. 1030 [153]"  (CHANGES  TO:)"
  83. 1040 [153]"A 2000 A9 12    LDA #$12
  84. 1050 PRINT"A 2002 ..NEXT INSTRUCTION
  85. 1060 [153]"     IN THE ABOVE EXAMPLE THE USER
  86. 1070 PRINT"STARTED ASSEMBLY AT 2000 HEX.  THE
  87. 1080 [153]"FIRST INSTRUCTION WAS LOAD A REGISTER
  88. 1090 PRINT"WITH IMMEDIATE 18 DECIMAL. IN FOLLOWING
  89. 1100 [153]"LINES THE USER NEED NOT TYPE THE
  90. 1110 PRINT"A AND ADDRESS.  THE SIMPLE ASSEMBLER
  91. 1120 [153]"PROMPTS WITH THE NEXT ADDRESS.  TO EXIT
  92. 1130 PRINT"THE ASSEMBLER TYPE A RETURN AFTER THE
  93. 1140 [153]"THE ADDRESS PROMPT.
  94. 1150 PRINT"  PREVIOUS LINES MAY BE CHANGED BY
  95. 1160 [153]"TYPING OVER THE RIGHT HAND PART.
  96. 1200 GOSUB9000
  97. 1220 PRINT"   D[146] 2000[146] 2004[146]
  98. 1230 [153]". 2000 A9 12    LDA #$12
  99. 1240 PRINT". 2002 9D 00 80 STA $8000,X
  100. 1250 [153]"     DISASSEMBLES INSTRUCTIONS FROM
  101. 1260 PRINT"2000 TO 2004 HEX.  IF ONE ADDRESS IS
  102. 1270 [153]"GIVEN, 20 BYTES WILL BE DISASSEMBLED.
  103. 1280 PRINT"IF NO ADDRESS, START FROM THE LAST
  104. 1290 [153]"USED ADDRESS.
  105. 1300 PRINT"  CODE MAY BE REASSEMBLED BY MOVING
  106. 1310 [153]"THE CURSOR BACK AND TYPING OVER THE
  107. 1320 PRINT"RIGHT HAND PART.
  108. 1400 [141]9000
  109. 1410 [153]" FILL MEMORY "
  110. 1420 [153]"   FWAIT 1000WAIT 1100WAIT FF
  111. 1430 PRINT"     FILLS THE MEMORY FROM 1000 HEX TO
  112. 1440 [153]"1100 HEX WITH THE BYTE FF HEX.
  113. 1500 GOSUB9000
  114. 1510 PRINT" GO (RUN)"
  115. 1520 PRINT"   G[146] 1000
  116. 1530 [153]"     GO TO ADDRESS 1000 HEX AND BEGIN
  117. 1540 PRINT"RUNNING CODE.
  118. 1550 [153]"  IF NO ADDRESS IS GIVEN, THE ADDRESS
  119. 1560 PRINT"FROM THE <PC> REGISTER IS USED.
  120. 1570 [153]" JUMP (SUBROUTINE)"
  121. 1580 [153]"   JWAIT 1000
  122. 1590 PRINT"     CALL ADDRESS 1000 HEX AND BEGIN
  123. 1600 [153]"RUNNING CODE.  RETURN TO THE MONITOR.
  124. 1700 GOSUB9000
  125. 2200 PRINT" HUNT MEMORY "
  126. 2210 PRINT"   H[146] C000[146] D000[146] 'READ
  127. 2220 [153]"     HUNT THRU MEMORY FROM C000 HEX TO
  128. 2230 PRINT"D000 HEX FOR THE ASCII STRING READ[146] AND
  129. 2240 [153]"PRINT THE ADDRESS WHERE IT IS FOUND.  A
  130. 2250 PRINT"MAXIMUM OF 32 CHARACTERS MAY BE USED.
  131. 2260 [153]"   HWAIT C000WAIT D000WAIT 20WAIT D2WAIT FF
  132. 2270 PRINT"     HUNT MEMORY FROM C000 HEX TO D000
  133. 2280 [153]"HEX FOR THE SEQUENCE OF BYTES 20 D2 FF
  134. 2290 PRINT"AND PRINT THE ADDRESS.  A MAXIMUM OF 32
  135. 2300 [153]"BYTES MAY BE USED.
  136. 2390 GOSUB9000
  137. 2400 PRINT" LOAD "
  138. 2401 PRINT"   L[146]
  139. 2402 [153]"   LOAD ANY PROGRAM FROM CASSETTE #1.
  140. 2403 PRINT"    L[146] ";CHR$(34);"RAM TEST";CHR$(34)
  141. 2404 PRINT"   LOAD FROM CASSETTE #1 THE PROGRAM
  142. 2405 [153]"NAMED RAM TESTWAIT.
  143. 2410 PRINT"   L[146] ";CHR$(34);"RAM TEST";CHR$(34);",08[146]
  144. 2420 [153]" LOAD FROM DISK (DEVICE 8) THE PROGRAM
  145. 2430 PRINT"NAMED RAM TEST[146].
  146. 2440 [153]"THIS COMMAND LEAVES BASIC POINTERS
  147. 2450 PRINT"UNCHANGED.
  148. 2490 [141]9000
  149. 2700 [153]" SAVE"
  150. 2710 [153]"   SWAIT ";[199](34);"PROGRAM NAME";[199](34);",01,0800,0C80"
  151. 2720 [153]"     SAVE TO CASSETTE #1 MEMORY FROM
  152. 2730 PRINT"0800 HEX UP TO BUT NOT INCLUDING 0C80
  153. 2740 [153]"HEX AND NAME IT PROGRAM NAMEWAIT.
  154. 2750 PRINT"   S[146] ";CHR$(34);"0:PROGRAM NAME";CHR$(34);",08,1200,1F50"
  155. 2760 PRINT"    SAVE TO DISK DRIVE #0 MEMORY FROM
  156. 2770 [153]"1200 HEX UP TO BUT NOT INCLUDING 1F50
  157. 2780 PRINT"HEX AND NAME IT PROGRAM NAME[146].
  158. 2790 [141]9000
  159. 2800 [153]" TRANSFER MEMORY "
  160. 2810 [153]"   TWAIT 1000WAIT 1100WAIT 5000
  161. 2820 PRINT"     TRANSFER MEMORY IN THE RANGE 1000
  162. 2830 [153]"HEX TO 1100 HEX AND START STORING IT AT
  163. 2840 PRINT"ADDRESS 5000 HEX.
  164. 2890 [141]9000
  165. 2900 [153]" COMPARE MEMORY "
  166. 2910 [153]"   CWAIT 1000WAIT 1100WAIT 5000
  167. 2920 PRINT"     COMPARE MEMORY IN THE RANGE 1000
  168. 2930 [153]"HEX TO 1100 HEX WITH MEMORY STARTING
  169. 2940 PRINT"AT ADDRESS 5000 HEX.
  170. 2990 [141]9000
  171. 3000 [153]" CHECK DISK "
  172. 3010 [153]"   @WAIT
  173. 3020 PRINT"     GET DISK STATUS MESSAGE
  174. 3030 [153]"   @9WAIT
  175. 3040 PRINT"     GET DISK UNIT 9 STATUS MESSAGE
  176. 3050 [153]"   @,$0WAIT
  177. 3060 PRINT"     GET DRIVE 0 DIRECTORY
  178. 3070 [153]"   @,S0:TEMPWAIT
  179. 3080 PRINT"     SCRATCH FILE 'TEMP' FROM DISK
  180. 3090 [141]9000
  181. 3100 [153]" OUTPUT TO PRINTER"
  182. 3110 [153]"CALL SUPERMON+ FROM BASIC WITH:
  183. 3120 PRINT"  OPEN 4,4:CMD 4:SYS 8[146]"
  184. 3130 PRINT"ALL COMMANDS WILL GO THE PRINTER.
  185. 3140 [153]"  WHEN COMPLETE, RETURN TO BASIC
  186. 3150 PRINT"WITH X[146] AND COMMAND:
  187. 3160 [153]"  PRINT#4:CLOSE 4WAIT"
  188. 3170 [141]9000
  189. 3500 [153]"ON        SUMMARY                     "
  190. 3505 [153]"$WAIT,+WAIT,&WAIT,%WAIT NUMBER CONVERSION
  191. 3510 PRINT"G[146] GO (RUN)
  192. 3515 [153]"JWAIT JUMP  (SUBROUTINE)
  193. 3520 PRINT"L[146] LOAD FROM TAPE OR DISK
  194. 3530 [153]"MWAIT MEMORY DISPLAY
  195. 3540 PRINT"R[146] REGISTER DISPLAY
  196. 3550 [153]"SWAIT SAVE TO TAPE OR DISK
  197. 3560 PRINT"X[146] EXIT TO BASIC
  198. 3600 [153]"AWAIT SIMPLE ASSEMBLER
  199. 3610 PRINT"D[146] DISASSEMBLER
  200. 3620 [153]"FWAIT FILL MEMORY
  201. 3630 PRINT"H[146] HUNT MEMORY
  202. 3660 [153]"TWAIT TRANSFER MEMORY
  203. 3665 PRINT"C[146] COMPARE MEMORY
  204. 3670 [153]"@WAIT DISK STATUS/COMMAND
  205. 4000 GOSUB9000
  206. 4010 PRINT"[145]SUPERMON[146] WILL LOAD ITSELF INTO THE
  207. 4020 [153]"TOP OF MEMORY .. WHEREVER THAT HAPPENS
  208. 4030 PRINT"TO BE ON YOUR MACHINE.
  209. 4060 [153]"BE SURE TO NOTE THE SYS COMMAND WHICH
  210. 4070 PRINT"LINKS SUPERMON[146] TO THE COMMODORE.  IT
  211. 4080 [153]"MAY BE USED TO RECONNECT THE MONITOR
  212. 4090 PRINT"IF IT IS ACCIDENTALLY DISCONNECTED BY
  213. 4100 [153]"USE OF THE RUN-STOP/RESTORE KEYS."
  214. 5000 [141]9000
  215. 8000 [137] 30
  216. 9000 [153]" HIT ANY KEY TO CONTINUE WAIT";
  217. 9010 [129]I[178]1[164]10:[161]A$:[130]
  218. 9020 [161]A$:[139]A$[178]""[167]9020
  219. 10000 [153]"LOAD         S U P E R M O N   +   WAIT"
  220. 10010 [153]"COMMANDS - USER INPUT IN  REVERSE "
  221. 10040 [142]
  222.